package com.dswz.po;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class GoodsQuery {
	protected Integer pageNo = Integer.valueOf(1);

	protected Integer startRow;

	protected Integer pageSize = Integer.valueOf(10);
	protected String fields;

	public Integer getPageNo() {
		return pageNo;
	}


	public void setPageNo(Integer pageNo) {
		this.pageNo = pageNo;
	}


	public Integer getStartRow() {
		return startRow;
	}


	public void setStartRow(Integer startRow) {
		this.startRow = startRow;
	}


	public Integer getPageSize() {
		return pageSize;
	}


	public void setPageSize(Integer pageSize) {
		this.pageSize = pageSize;
	}


	public String getFields() {
		return fields;
	}


	public void setFields(String fields) {
		this.fields = fields;
	}

   
    protected String orderByClause;

   
    protected boolean distinct;

   
    protected List<Criteria> oredCriteria;

   
    public GoodsQuery() {
        oredCriteria = new ArrayList<Criteria>();
    }

   
    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

   
    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }
    public boolean isDistinct() {
        return distinct;
    }
    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }
    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }
    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }
    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }
    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }
    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }
    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andGoodsIdIsNull() {
            addCriterion("goods_id is null");
            return (Criteria) this;
        }

        public Criteria andGoodsIdIsNotNull() {
            addCriterion("goods_id is not null");
            return (Criteria) this;
        }

        public Criteria andGoodsIdEqualTo(Integer value) {
            addCriterion("goods_id =", value, "goodsId");
            return (Criteria) this;
        }

        public Criteria andGoodsIdNotEqualTo(Integer value) {
            addCriterion("goods_id <>", value, "goodsId");
            return (Criteria) this;
        }

        public Criteria andGoodsIdGreaterThan(Integer value) {
            addCriterion("goods_id >", value, "goodsId");
            return (Criteria) this;
        }

        public Criteria andGoodsIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("goods_id >=", value, "goodsId");
            return (Criteria) this;
        }

        public Criteria andGoodsIdLessThan(Integer value) {
            addCriterion("goods_id <", value, "goodsId");
            return (Criteria) this;
        }

        public Criteria andGoodsIdLessThanOrEqualTo(Integer value) {
            addCriterion("goods_id <=", value, "goodsId");
            return (Criteria) this;
        }

        public Criteria andGoodsIdIn(List<Integer> values) {
            addCriterion("goods_id in", values, "goodsId");
            return (Criteria) this;
        }

        public Criteria andGoodsIdNotIn(List<Integer> values) {
            addCriterion("goods_id not in", values, "goodsId");
            return (Criteria) this;
        }

        public Criteria andGoodsIdBetween(Integer value1, Integer value2) {
            addCriterion("goods_id between", value1, value2, "goodsId");
            return (Criteria) this;
        }

        public Criteria andGoodsIdNotBetween(Integer value1, Integer value2) {
            addCriterion("goods_id not between", value1, value2, "goodsId");
            return (Criteria) this;
        }

        public Criteria andGoodsTypeIsNull() {
            addCriterion("goods_type is null");
            return (Criteria) this;
        }

        public Criteria andGoodsTypeIsNotNull() {
            addCriterion("goods_type is not null");
            return (Criteria) this;
        }

        public Criteria andGoodsTypeEqualTo(Byte value) {
            addCriterion("goods_type =", value, "goodsType");
            return (Criteria) this;
        }

        public Criteria andGoodsTypeNotEqualTo(String value) {
            addCriterion("goods_type <>", value, "goodsType");
            return (Criteria) this;
        }

        public Criteria andGoodsTypeGreaterThan(String value) {
            addCriterion("goods_type >", value, "goodsType");
            return (Criteria) this;
        }

        public Criteria andGoodsTypeGreaterThanOrEqualTo(String value) {
            addCriterion("goods_type >=", value, "goodsType");
            return (Criteria) this;
        }

        public Criteria andGoodsTypeLessThan(String value) {
            addCriterion("goods_type <", value, "goodsType");
            return (Criteria) this;
        }

        public Criteria andGoodsTypeLessThanOrEqualTo(String value) {
            addCriterion("goods_type <=", value, "goodsType");
            return (Criteria) this;
        }

        public Criteria andGoodsTypeLike(String value) {
            addCriterion("goods_type like", value, "goodsType");
            return (Criteria) this;
        }

        public Criteria andGoodsTypeNotLike(String value) {
            addCriterion("goods_type not like", value, "goodsType");
            return (Criteria) this;
        }

        public Criteria andGoodsTypeIn(List<String> values) {
            addCriterion("goods_type in", values, "goodsType");
            return (Criteria) this;
        }

        public Criteria andGoodsTypeNotIn(List<String> values) {
            addCriterion("goods_type not in", values, "goodsType");
            return (Criteria) this;
        }

        public Criteria andGoodsTypeBetween(String value1, String value2) {
            addCriterion("goods_type between", value1, value2, "goodsType");
            return (Criteria) this;
        }

        public Criteria andGoodsTypeNotBetween(String value1, String value2) {
            addCriterion("goods_type not between", value1, value2, "goodsType");
            return (Criteria) this;
        }

        public Criteria andGoodsTitleIsNull() {
            addCriterion("goods_title is null");
            return (Criteria) this;
        }

        public Criteria andGoodsTitleIsNotNull() {
            addCriterion("goods_title is not null");
            return (Criteria) this;
        }

        public Criteria andGoodsTitleEqualTo(String value) {
            addCriterion("goods_title =", value, "goodsTitle");
            return (Criteria) this;
        }

        public Criteria andGoodsTitleNotEqualTo(String value) {
            addCriterion("goods_title <>", value, "goodsTitle");
            return (Criteria) this;
        }

        public Criteria andGoodsTitleGreaterThan(String value) {
            addCriterion("goods_title >", value, "goodsTitle");
            return (Criteria) this;
        }

        public Criteria andGoodsTitleGreaterThanOrEqualTo(String value) {
            addCriterion("goods_title >=", value, "goodsTitle");
            return (Criteria) this;
        }

        public Criteria andGoodsTitleLessThan(String value) {
            addCriterion("goods_title <", value, "goodsTitle");
            return (Criteria) this;
        }

        public Criteria andGoodsTitleLessThanOrEqualTo(String value) {
            addCriterion("goods_title <=", value, "goodsTitle");
            return (Criteria) this;
        }

        public Criteria andGoodsTitleLike(String value) {
            addCriterion("goods_title like", value, "goodsTitle");
            return (Criteria) this;
        }

        public Criteria andGoodsTitleNotLike(String value) {
            addCriterion("goods_title not like", value, "goodsTitle");
            return (Criteria) this;
        }

        public Criteria andGoodsTitleIn(List<String> values) {
            addCriterion("goods_title in", values, "goodsTitle");
            return (Criteria) this;
        }

        public Criteria andGoodsTitleNotIn(List<String> values) {
            addCriterion("goods_title not in", values, "goodsTitle");
            return (Criteria) this;
        }

        public Criteria andGoodsTitleBetween(String value1, String value2) {
            addCriterion("goods_title between", value1, value2, "goodsTitle");
            return (Criteria) this;
        }

        public Criteria andGoodsTitleNotBetween(String value1, String value2) {
            addCriterion("goods_title not between", value1, value2, "goodsTitle");
            return (Criteria) this;
        }

        public Criteria andGoodsIntroductionIsNull() {
            addCriterion("goods_introduction is null");
            return (Criteria) this;
        }

        public Criteria andGoodsIntroductionIsNotNull() {
            addCriterion("goods_introduction is not null");
            return (Criteria) this;
        }

        public Criteria andGoodsIntroductionEqualTo(String value) {
            addCriterion("goods_introduction =", value, "goodsIntroduction");
            return (Criteria) this;
        }

        public Criteria andGoodsIntroductionNotEqualTo(String value) {
            addCriterion("goods_introduction <>", value, "goodsIntroduction");
            return (Criteria) this;
        }

        public Criteria andGoodsIntroductionGreaterThan(String value) {
            addCriterion("goods_introduction >", value, "goodsIntroduction");
            return (Criteria) this;
        }

        public Criteria andGoodsIntroductionGreaterThanOrEqualTo(String value) {
            addCriterion("goods_introduction >=", value, "goodsIntroduction");
            return (Criteria) this;
        }

        public Criteria andGoodsIntroductionLessThan(String value) {
            addCriterion("goods_introduction <", value, "goodsIntroduction");
            return (Criteria) this;
        }

        public Criteria andGoodsIntroductionLessThanOrEqualTo(String value) {
            addCriterion("goods_introduction <=", value, "goodsIntroduction");
            return (Criteria) this;
        }

        public Criteria andGoodsIntroductionLike(String value) {
            addCriterion("goods_introduction like", value, "goodsIntroduction");
            return (Criteria) this;
        }

        public Criteria andGoodsIntroductionNotLike(String value) {
            addCriterion("goods_introduction not like", value, "goodsIntroduction");
            return (Criteria) this;
        }

        public Criteria andGoodsIntroductionIn(List<String> values) {
            addCriterion("goods_introduction in", values, "goodsIntroduction");
            return (Criteria) this;
        }

        public Criteria andGoodsIntroductionNotIn(List<String> values) {
            addCriterion("goods_introduction not in", values, "goodsIntroduction");
            return (Criteria) this;
        }

        public Criteria andGoodsIntroductionBetween(String value1, String value2) {
            addCriterion("goods_introduction between", value1, value2, "goodsIntroduction");
            return (Criteria) this;
        }

        public Criteria andGoodsIntroductionNotBetween(String value1, String value2) {
            addCriterion("goods_introduction not between", value1, value2, "goodsIntroduction");
            return (Criteria) this;
        }

        public Criteria andGoodsPicIsNull() {
            addCriterion("goods_pic is null");
            return (Criteria) this;
        }

        public Criteria andGoodsPicIsNotNull() {
            addCriterion("goods_pic is not null");
            return (Criteria) this;
        }

        public Criteria andGoodsPicEqualTo(String value) {
            addCriterion("goods_pic =", value, "goodsPic");
            return (Criteria) this;
        }

        public Criteria andGoodsPicNotEqualTo(String value) {
            addCriterion("goods_pic <>", value, "goodsPic");
            return (Criteria) this;
        }

        public Criteria andGoodsPicGreaterThan(String value) {
            addCriterion("goods_pic >", value, "goodsPic");
            return (Criteria) this;
        }

        public Criteria andGoodsPicGreaterThanOrEqualTo(String value) {
            addCriterion("goods_pic >=", value, "goodsPic");
            return (Criteria) this;
        }

        public Criteria andGoodsPicLessThan(String value) {
            addCriterion("goods_pic <", value, "goodsPic");
            return (Criteria) this;
        }

        public Criteria andGoodsPicLessThanOrEqualTo(String value) {
            addCriterion("goods_pic <=", value, "goodsPic");
            return (Criteria) this;
        }

        public Criteria andGoodsPicLike(String value) {
            addCriterion("goods_pic like", value, "goodsPic");
            return (Criteria) this;
        }

        public Criteria andGoodsPicNotLike(String value) {
            addCriterion("goods_pic not like", value, "goodsPic");
            return (Criteria) this;
        }

        public Criteria andGoodsPicIn(List<String> values) {
            addCriterion("goods_pic in", values, "goodsPic");
            return (Criteria) this;
        }

        public Criteria andGoodsPicNotIn(List<String> values) {
            addCriterion("goods_pic not in", values, "goodsPic");
            return (Criteria) this;
        }

        public Criteria andGoodsPicBetween(String value1, String value2) {
            addCriterion("goods_pic between", value1, value2, "goodsPic");
            return (Criteria) this;
        }

        public Criteria andGoodsPicNotBetween(String value1, String value2) {
            addCriterion("goods_pic not between", value1, value2, "goodsPic");
            return (Criteria) this;
        }

        public Criteria andGoodsPriceIsNull() {
            addCriterion("goods_price is null");
            return (Criteria) this;
        }

        public Criteria andGoodsPriceIsNotNull() {
            addCriterion("goods_price is not null");
            return (Criteria) this;
        }

        public Criteria andGoodsPriceEqualTo(Double value) {
            addCriterion("goods_price =", value, "goodsPrice");
            return (Criteria) this;
        }

        public Criteria andGoodsPriceNotEqualTo(Double value) {
            addCriterion("goods_price <>", value, "goodsPrice");
            return (Criteria) this;
        }

        public Criteria andGoodsPriceGreaterThan(Double value) {
            addCriterion("goods_price >", value, "goodsPrice");
            return (Criteria) this;
        }

        public Criteria andGoodsPriceGreaterThanOrEqualTo(Double value) {
            addCriterion("goods_price >=", value, "goodsPrice");
            return (Criteria) this;
        }

        public Criteria andGoodsPriceLessThan(Double value) {
            addCriterion("goods_price <", value, "goodsPrice");
            return (Criteria) this;
        }

        public Criteria andGoodsPriceLessThanOrEqualTo(Double value) {
            addCriterion("goods_price <=", value, "goodsPrice");
            return (Criteria) this;
        }

        public Criteria andGoodsPriceIn(List<Double> values) {
            addCriterion("goods_price in", values, "goodsPrice");
            return (Criteria) this;
        }

        public Criteria andGoodsPriceNotIn(List<Double> values) {
            addCriterion("goods_price not in", values, "goodsPrice");
            return (Criteria) this;
        }

        public Criteria andGoodsPriceBetween(Double value1, Double value2) {
            addCriterion("goods_price between", value1, value2, "goodsPrice");
            return (Criteria) this;
        }

        public Criteria andGoodsPriceNotBetween(Double value1, Double value2) {
            addCriterion("goods_price not between", value1, value2, "goodsPrice");
            return (Criteria) this;
        }

        public Criteria andGoodsDetailIsNull() {
            addCriterion("goods_detail is null");
            return (Criteria) this;
        }

        public Criteria andGoodsDetailIsNotNull() {
            addCriterion("goods_detail is not null");
            return (Criteria) this;
        }

        public Criteria andGoodsDetailEqualTo(String value) {
            addCriterion("goods_detail =", value, "goodsDetail");
            return (Criteria) this;
        }

        public Criteria andGoodsDetailNotEqualTo(String value) {
            addCriterion("goods_detail <>", value, "goodsDetail");
            return (Criteria) this;
        }

        public Criteria andGoodsDetailGreaterThan(String value) {
            addCriterion("goods_detail >", value, "goodsDetail");
            return (Criteria) this;
        }

        public Criteria andGoodsDetailGreaterThanOrEqualTo(String value) {
            addCriterion("goods_detail >=", value, "goodsDetail");
            return (Criteria) this;
        }

        public Criteria andGoodsDetailLessThan(String value) {
            addCriterion("goods_detail <", value, "goodsDetail");
            return (Criteria) this;
        }

        public Criteria andGoodsDetailLessThanOrEqualTo(String value) {
            addCriterion("goods_detail <=", value, "goodsDetail");
            return (Criteria) this;
        }

        public Criteria andGoodsDetailLike(String value) {
            addCriterion("goods_detail like", value, "goodsDetail");
            return (Criteria) this;
        }

        public Criteria andGoodsDetailNotLike(String value) {
            addCriterion("goods_detail not like", value, "goodsDetail");
            return (Criteria) this;
        }

        public Criteria andGoodsDetailIn(List<String> values) {
            addCriterion("goods_detail in", values, "goodsDetail");
            return (Criteria) this;
        }

        public Criteria andGoodsDetailNotIn(List<String> values) {
            addCriterion("goods_detail not in", values, "goodsDetail");
            return (Criteria) this;
        }

        public Criteria andGoodsDetailBetween(String value1, String value2) {
            addCriterion("goods_detail between", value1, value2, "goodsDetail");
            return (Criteria) this;
        }

        public Criteria andGoodsDetailNotBetween(String value1, String value2) {
            addCriterion("goods_detail not between", value1, value2, "goodsDetail");
            return (Criteria) this;
        }

        public Criteria andGoodsOrderNoIsNull() {
            addCriterion("goods_order_no is null");
            return (Criteria) this;
        }

        public Criteria andGoodsOrderNoIsNotNull() {
            addCriterion("goods_order_no is not null");
            return (Criteria) this;
        }

        public Criteria andGoodsOrderNoEqualTo(Integer value) {
            addCriterion("goods_order_no =", value, "goodsOrderNo");
            return (Criteria) this;
        }

        public Criteria andGoodsOrderNoNotEqualTo(Integer value) {
            addCriterion("goods_order_no <>", value, "goodsOrderNo");
            return (Criteria) this;
        }

        public Criteria andGoodsOrderNoGreaterThan(Integer value) {
            addCriterion("goods_order_no >", value, "goodsOrderNo");
            return (Criteria) this;
        }

        public Criteria andGoodsOrderNoGreaterThanOrEqualTo(Integer value) {
            addCriterion("goods_order_no >=", value, "goodsOrderNo");
            return (Criteria) this;
        }

        public Criteria andGoodsOrderNoLessThan(Integer value) {
            addCriterion("goods_order_no <", value, "goodsOrderNo");
            return (Criteria) this;
        }

        public Criteria andGoodsOrderNoLessThanOrEqualTo(Integer value) {
            addCriterion("goods_order_no <=", value, "goodsOrderNo");
            return (Criteria) this;
        }

        public Criteria andGoodsOrderNoIn(List<Integer> values) {
            addCriterion("goods_order_no in", values, "goodsOrderNo");
            return (Criteria) this;
        }

        public Criteria andGoodsOrderNoNotIn(List<Integer> values) {
            addCriterion("goods_order_no not in", values, "goodsOrderNo");
            return (Criteria) this;
        }

        public Criteria andGoodsOrderNoBetween(Integer value1, Integer value2) {
            addCriterion("goods_order_no between", value1, value2, "goodsOrderNo");
            return (Criteria) this;
        }

        public Criteria andGoodsOrderNoNotBetween(Integer value1, Integer value2) {
            addCriterion("goods_order_no not between", value1, value2, "goodsOrderNo");
            return (Criteria) this;
        }

        public Criteria andGoodsIsDelIsNull() {
            addCriterion("goods_is_del is null");
            return (Criteria) this;
        }

        public Criteria andGoodsIsDelIsNotNull() {
            addCriterion("goods_is_del is not null");
            return (Criteria) this;
        }

        public Criteria andGoodsIsDelEqualTo(Byte value) {
            addCriterion("goods_is_del =", value, "goodsIsDel");
            return (Criteria) this;
        }

        public Criteria andGoodsIsDelNotEqualTo(Byte value) {
            addCriterion("goods_is_del <>", value, "goodsIsDel");
            return (Criteria) this;
        }

        public Criteria andGoodsIsDelGreaterThan(Byte value) {
            addCriterion("goods_is_del >", value, "goodsIsDel");
            return (Criteria) this;
        }

        public Criteria andGoodsIsDelGreaterThanOrEqualTo(Byte value) {
            addCriterion("goods_is_del >=", value, "goodsIsDel");
            return (Criteria) this;
        }

        public Criteria andGoodsIsDelLessThan(Byte value) {
            addCriterion("goods_is_del <", value, "goodsIsDel");
            return (Criteria) this;
        }

        public Criteria andGoodsIsDelLessThanOrEqualTo(Byte value) {
            addCriterion("goods_is_del <=", value, "goodsIsDel");
            return (Criteria) this;
        }

        public Criteria andGoodsIsDelIn(List<Byte> values) {
            addCriterion("goods_is_del in", values, "goodsIsDel");
            return (Criteria) this;
        }

        public Criteria andGoodsIsDelNotIn(List<Byte> values) {
            addCriterion("goods_is_del not in", values, "goodsIsDel");
            return (Criteria) this;
        }

        public Criteria andGoodsIsDelBetween(Byte value1, Byte value2) {
            addCriterion("goods_is_del between", value1, value2, "goodsIsDel");
            return (Criteria) this;
        }

        public Criteria andGoodsIsDelNotBetween(Byte value1, Byte value2) {
            addCriterion("goods_is_del not between", value1, value2, "goodsIsDel");
            return (Criteria) this;
        }

        public Criteria andGoodsCreateTimeIsNull() {
            addCriterion("goods_create_time is null");
            return (Criteria) this;
        }

        public Criteria andGoodsCreateTimeIsNotNull() {
            addCriterion("goods_create_time is not null");
            return (Criteria) this;
        }

        public Criteria andGoodsCreateTimeEqualTo(Date value) {
            addCriterion("goods_create_time =", value, "goodsCreateTime");
            return (Criteria) this;
        }

        public Criteria andGoodsCreateTimeNotEqualTo(Date value) {
            addCriterion("goods_create_time <>", value, "goodsCreateTime");
            return (Criteria) this;
        }

        public Criteria andGoodsCreateTimeGreaterThan(Date value) {
            addCriterion("goods_create_time >", value, "goodsCreateTime");
            return (Criteria) this;
        }

        public Criteria andGoodsCreateTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("goods_create_time >=", value, "goodsCreateTime");
            return (Criteria) this;
        }

        public Criteria andGoodsCreateTimeLessThan(Date value) {
            addCriterion("goods_create_time <", value, "goodsCreateTime");
            return (Criteria) this;
        }

        public Criteria andGoodsCreateTimeLessThanOrEqualTo(Date value) {
            addCriterion("goods_create_time <=", value, "goodsCreateTime");
            return (Criteria) this;
        }

        public Criteria andGoodsCreateTimeIn(List<Date> values) {
            addCriterion("goods_create_time in", values, "goodsCreateTime");
            return (Criteria) this;
        }

        public Criteria andGoodsCreateTimeNotIn(List<Date> values) {
            addCriterion("goods_create_time not in", values, "goodsCreateTime");
            return (Criteria) this;
        }

        public Criteria andGoodsCreateTimeBetween(Date value1, Date value2) {
            addCriterion("goods_create_time between", value1, value2, "goodsCreateTime");
            return (Criteria) this;
        }

        public Criteria andGoodsCreateTimeNotBetween(Date value1, Date value2) {
            addCriterion("goods_create_time not between", value1, value2, "goodsCreateTime");
            return (Criteria) this;
        }
    }

    /**
     * This class was generated by MyBatis Generator.
     * This class corresponds to the database table dswz_goods
     *
     * @mbg.generated do_not_delete_during_merge Sat Sep 01 12:43:35 CST 2018
     */
    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    /**
     * This class was generated by MyBatis Generator.
     * This class corresponds to the database table dswz_goods
     *
     * @mbg.generated Sat Sep 01 12:43:35 CST 2018
     */
    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}